Note: Make sure the R Markdown package is properly installed! If you cannot Knit this file run the following command first:
install.packages("rmarkdown")
The following R Markdown syntax appears at the top of your markdown file, and it dictates how your file will be knitted:
----
title: "R Markdown Demo"
output: html_document
----
You can specify the format of your HTML document by adding options and parameters after html_document:. For example you can add a table of contents on the top of the page by adding toc: true like so:
----
title: "R Markdown Demo"
output:
html_document:
toc: true
----
Notice that html_document: now appears on a new indented line followed by a colon at the end, likewise toc: true also appears on a new indented line.
Ease of use and readability of your document can be improved substantially by adding HTML format options as well as using Chunk options. Here are some useful formating options. For more options see the HTML Document Format Guide
Use option toc: true to add table of contents.
This is the syntax you would use to implement all these features:
----
title: "R Markdown Demo"
output:
html_document:
toc: true
toc_depth: 2
toc_float: true
----
To organize content in tabbed section as demonstrated here applying the .tabset class attribute to headers within a document. This will cause all sub-headers to appear within tabs. For example:
### Formatting Options{.tabset}
#### Table Of Contents
(tab content)
#### Tabbed Sections
(tab content)
#### Appearance and Style
(tab content)
#### Code Folding
(tab content)
You can change the appearance of the document by applying the following options:
theme: specifies the Bootstrap theme to use for the page. Supported styles include “default”, “cerulean”, “journal”, “flatly”, “readable”, “spacelab”, “united”, “cosmo”, “lumen”, “paper”, “sandstone”, “simplex”, and “yeti”. See how these styles look like at Bootswatch.com
highlight: specifies the syntax highlighting style. Supported styles include “default”, “tango”, “pygments”, “kate”, “monochrome”, “espresso”, “zenburn”, “haddock”, and “textmate”.
This is the syntax you would use to implement all these features:
----
title: "R Markdown Demo"
output:
html_document:
theme: cerulean
highlight: tango
----
Displaying code is not always nescessary when sharing your results, however occasionally your readers may want to know how you did your analysis.
The code_folding: hide option enables you to include R code but have it hidden by default. Users can then choose to show hidden R code chunks either individually or document wide. For example:
To implement this feature use the following syntax:
----
title: "R Markdown Demo"
output:
html_document:
code_folding: hide
----
Your code chunk will be collapsed and can be unfolded by pressing the Code button on the right hand side of the document:
print(1^3 + 12^3)
## [1] 1729
print(9^3 + 10^3)
## [1] 1729
Note: That the output of the chunk is still displayed.
You can create your own HTML customization through the use of CSS language.
Here is one useful customization that uses CSS, which limits output text from your code chunks, with an option to scroll through the output vertically. Simply add the following to your Rmarkdown document (as is done in this Markdown file at the top of the document):
<style>
pre code, pre, code {
overflow-y: auto !important;
max-height: 20em;
}
</style>
Note: max-height: argument cotrols the maximum size of the text box before it becomes scrollable, while overflow-y: in this case is set to auto which tells the browser to handle when to make the text box scrollable automatically.
This is how long output will now appear:
for (x in 1:500){
print(x)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
## [1] 11
## [1] 12
## [1] 13
## [1] 14
## [1] 15
## [1] 16
## [1] 17
## [1] 18
## [1] 19
## [1] 20
## [1] 21
## [1] 22
## [1] 23
## [1] 24
## [1] 25
## [1] 26
## [1] 27
## [1] 28
## [1] 29
## [1] 30
## [1] 31
## [1] 32
## [1] 33
## [1] 34
## [1] 35
## [1] 36
## [1] 37
## [1] 38
## [1] 39
## [1] 40
## [1] 41
## [1] 42
## [1] 43
## [1] 44
## [1] 45
## [1] 46
## [1] 47
## [1] 48
## [1] 49
## [1] 50
## [1] 51
## [1] 52
## [1] 53
## [1] 54
## [1] 55
## [1] 56
## [1] 57
## [1] 58
## [1] 59
## [1] 60
## [1] 61
## [1] 62
## [1] 63
## [1] 64
## [1] 65
## [1] 66
## [1] 67
## [1] 68
## [1] 69
## [1] 70
## [1] 71
## [1] 72
## [1] 73
## [1] 74
## [1] 75
## [1] 76
## [1] 77
## [1] 78
## [1] 79
## [1] 80
## [1] 81
## [1] 82
## [1] 83
## [1] 84
## [1] 85
## [1] 86
## [1] 87
## [1] 88
## [1] 89
## [1] 90
## [1] 91
## [1] 92
## [1] 93
## [1] 94
## [1] 95
## [1] 96
## [1] 97
## [1] 98
## [1] 99
## [1] 100
## [1] 101
## [1] 102
## [1] 103
## [1] 104
## [1] 105
## [1] 106
## [1] 107
## [1] 108
## [1] 109
## [1] 110
## [1] 111
## [1] 112
## [1] 113
## [1] 114
## [1] 115
## [1] 116
## [1] 117
## [1] 118
## [1] 119
## [1] 120
## [1] 121
## [1] 122
## [1] 123
## [1] 124
## [1] 125
## [1] 126
## [1] 127
## [1] 128
## [1] 129
## [1] 130
## [1] 131
## [1] 132
## [1] 133
## [1] 134
## [1] 135
## [1] 136
## [1] 137
## [1] 138
## [1] 139
## [1] 140
## [1] 141
## [1] 142
## [1] 143
## [1] 144
## [1] 145
## [1] 146
## [1] 147
## [1] 148
## [1] 149
## [1] 150
## [1] 151
## [1] 152
## [1] 153
## [1] 154
## [1] 155
## [1] 156
## [1] 157
## [1] 158
## [1] 159
## [1] 160
## [1] 161
## [1] 162
## [1] 163
## [1] 164
## [1] 165
## [1] 166
## [1] 167
## [1] 168
## [1] 169
## [1] 170
## [1] 171
## [1] 172
## [1] 173
## [1] 174
## [1] 175
## [1] 176
## [1] 177
## [1] 178
## [1] 179
## [1] 180
## [1] 181
## [1] 182
## [1] 183
## [1] 184
## [1] 185
## [1] 186
## [1] 187
## [1] 188
## [1] 189
## [1] 190
## [1] 191
## [1] 192
## [1] 193
## [1] 194
## [1] 195
## [1] 196
## [1] 197
## [1] 198
## [1] 199
## [1] 200
## [1] 201
## [1] 202
## [1] 203
## [1] 204
## [1] 205
## [1] 206
## [1] 207
## [1] 208
## [1] 209
## [1] 210
## [1] 211
## [1] 212
## [1] 213
## [1] 214
## [1] 215
## [1] 216
## [1] 217
## [1] 218
## [1] 219
## [1] 220
## [1] 221
## [1] 222
## [1] 223
## [1] 224
## [1] 225
## [1] 226
## [1] 227
## [1] 228
## [1] 229
## [1] 230
## [1] 231
## [1] 232
## [1] 233
## [1] 234
## [1] 235
## [1] 236
## [1] 237
## [1] 238
## [1] 239
## [1] 240
## [1] 241
## [1] 242
## [1] 243
## [1] 244
## [1] 245
## [1] 246
## [1] 247
## [1] 248
## [1] 249
## [1] 250
## [1] 251
## [1] 252
## [1] 253
## [1] 254
## [1] 255
## [1] 256
## [1] 257
## [1] 258
## [1] 259
## [1] 260
## [1] 261
## [1] 262
## [1] 263
## [1] 264
## [1] 265
## [1] 266
## [1] 267
## [1] 268
## [1] 269
## [1] 270
## [1] 271
## [1] 272
## [1] 273
## [1] 274
## [1] 275
## [1] 276
## [1] 277
## [1] 278
## [1] 279
## [1] 280
## [1] 281
## [1] 282
## [1] 283
## [1] 284
## [1] 285
## [1] 286
## [1] 287
## [1] 288
## [1] 289
## [1] 290
## [1] 291
## [1] 292
## [1] 293
## [1] 294
## [1] 295
## [1] 296
## [1] 297
## [1] 298
## [1] 299
## [1] 300
## [1] 301
## [1] 302
## [1] 303
## [1] 304
## [1] 305
## [1] 306
## [1] 307
## [1] 308
## [1] 309
## [1] 310
## [1] 311
## [1] 312
## [1] 313
## [1] 314
## [1] 315
## [1] 316
## [1] 317
## [1] 318
## [1] 319
## [1] 320
## [1] 321
## [1] 322
## [1] 323
## [1] 324
## [1] 325
## [1] 326
## [1] 327
## [1] 328
## [1] 329
## [1] 330
## [1] 331
## [1] 332
## [1] 333
## [1] 334
## [1] 335
## [1] 336
## [1] 337
## [1] 338
## [1] 339
## [1] 340
## [1] 341
## [1] 342
## [1] 343
## [1] 344
## [1] 345
## [1] 346
## [1] 347
## [1] 348
## [1] 349
## [1] 350
## [1] 351
## [1] 352
## [1] 353
## [1] 354
## [1] 355
## [1] 356
## [1] 357
## [1] 358
## [1] 359
## [1] 360
## [1] 361
## [1] 362
## [1] 363
## [1] 364
## [1] 365
## [1] 366
## [1] 367
## [1] 368
## [1] 369
## [1] 370
## [1] 371
## [1] 372
## [1] 373
## [1] 374
## [1] 375
## [1] 376
## [1] 377
## [1] 378
## [1] 379
## [1] 380
## [1] 381
## [1] 382
## [1] 383
## [1] 384
## [1] 385
## [1] 386
## [1] 387
## [1] 388
## [1] 389
## [1] 390
## [1] 391
## [1] 392
## [1] 393
## [1] 394
## [1] 395
## [1] 396
## [1] 397
## [1] 398
## [1] 399
## [1] 400
## [1] 401
## [1] 402
## [1] 403
## [1] 404
## [1] 405
## [1] 406
## [1] 407
## [1] 408
## [1] 409
## [1] 410
## [1] 411
## [1] 412
## [1] 413
## [1] 414
## [1] 415
## [1] 416
## [1] 417
## [1] 418
## [1] 419
## [1] 420
## [1] 421
## [1] 422
## [1] 423
## [1] 424
## [1] 425
## [1] 426
## [1] 427
## [1] 428
## [1] 429
## [1] 430
## [1] 431
## [1] 432
## [1] 433
## [1] 434
## [1] 435
## [1] 436
## [1] 437
## [1] 438
## [1] 439
## [1] 440
## [1] 441
## [1] 442
## [1] 443
## [1] 444
## [1] 445
## [1] 446
## [1] 447
## [1] 448
## [1] 449
## [1] 450
## [1] 451
## [1] 452
## [1] 453
## [1] 454
## [1] 455
## [1] 456
## [1] 457
## [1] 458
## [1] 459
## [1] 460
## [1] 461
## [1] 462
## [1] 463
## [1] 464
## [1] 465
## [1] 466
## [1] 467
## [1] 468
## [1] 469
## [1] 470
## [1] 471
## [1] 472
## [1] 473
## [1] 474
## [1] 475
## [1] 476
## [1] 477
## [1] 478
## [1] 479
## [1] 480
## [1] 481
## [1] 482
## [1] 483
## [1] 484
## [1] 485
## [1] 486
## [1] 487
## [1] 488
## [1] 489
## [1] 490
## [1] 491
## [1] 492
## [1] 493
## [1] 494
## [1] 495
## [1] 496
## [1] 497
## [1] 498
## [1] 499
## [1] 500
You can control the default options used for all your R code chunks by adding arguments to the knitr::opts_chunk$set() function.
For example, echo = FALSE within the global chunk option will omit all R code within the knitted file.
To see an example, unfold code by pressing the code button on the right hand side of the screen:
knitr::opts_chunk$set(echo = FALSE)
Note: Global or default chunk options are overidden by individual chunk options.
Here are some useful chunk options. See the Reference Guide for more options.
You can display code of a particular chunk by stating echo = TRUE inside an individual chunk option, for example:
## ```{r, echo=TRUE}
## plot(pressure)
## ```
This will display the code (unfold by pressing code button) as well as the output:
plot(pressure)
You can run the chunk while excluding it from the HTML document by using the include = FALSE option, for example:
## ```{r, include=FALSE}
## head(pressure) #Outputs top 5 rows
## plot(pressure) #Outputs plot
## ```
Although the chunk has been executed, no output is visible:
If you only want to hide the printed output (all output other than a figure) you can use the results = “hide” option, for example:
## ```{r, results="hide"}
## head(pressure) #Outputs top 5 rows
## plot(pressure) #Outputs plot
## ```
This time only the plot is displayed while the printed results are hidden:
warning = (TRUE; logical) whether to preserve warnings (produced by warning()) in the output like when we run R code in a terminal (if FALSE, all warnings will be printed in the console instead of the output document); it can also take numeric values as indices to select a subset of warnings to include in the output.
error = (TRUE; logical) whether to preserve errors (from stop()); by default, the evaluation will not stop even in case of errors!! If we want R to stop on errors, we need to set this option to FALSE when the chunk option include = FALSE, so knitr will stop on error, because it is easy to overlook potential errors in this case.
message = (TRUE; logical) whether to preserve messages emitted by message() (similar to warning)
If you only want to hide the figures you can use the fig.show = “hide” option, for example:
## ```{r, fig.show = "hide"}
## head(pressure) #Outputs top 5 rows
## plot(pressure) #Outputs plot
## ```
In this case the printed text is shown while the figure is hidden:
## temperature pressure
## 1 0 0.0002
## 2 20 0.0012
## 3 40 0.0060
## 4 60 0.0300
## 5 80 0.0900
## 6 100 0.2700
Figures are automatically included in your rendered document, for example:
plot(cars)
If you only want to hide the figures you can use the fig.show = “hide” option, for example:
## ```{r, fig.show = "hide"}
## plot(pressure) #Outputs plot
## ```
In this case the figure is hidden:
You can also control the figure size by using fig.width, fig.height: options (both are 7; numeric) These control the width and height of the plot, to be used in the graphics device (in inches) and have to be numeric. For example:
## ```{r, fig.width = 6, fig.height = 6}
## plot(pressure) #Outputs plot
## ```
The displayed figure is now 6x6 inches: